class A:
    def __init__(self):
        self.__j = 1
        self.number = 5

    def base_show(self):
        return "I am base show"


class B(A):
    def __init__(self):
        self.__j = 2
        self.number = 7

    def show(self):
        print(self.__j, self.number)


b = B()
print(b.base_show())
print(b.__dir__())
'''
['_B__j', 'number', '__module__', '__init__', 
'show', '__doc__', '__dict__', '__weakref__', 
'__repr__', '__hash__', '__str__', 
'__getattribute__', '__setattr__', 
'__delattr__', '__lt__', '__le__', '__eq__', 
'__ne__', '__gt__', '__ge__', '__new__', 
'__reduce_ex__', '__reduce__', '__subclasshook__', 
'__init_subclass__', '__format__', '__sizeof__', 
'__dir__', '__class__']
'''
# print(b.__j)  # AttributeError: 'B' object has no attribute '__j'
print(b._B__j)  # 2
